public class SameBinaryTree {
    public class TreeNode{
        int val;
        TreeNode left;
        TreeNode right;
        TreeNode(){}
        TreeNode(int val){
            this.val = val;
        }
    }
    public boolean isSameTree(TreeNode p, TreeNode q) {
        //两棵树都是空——相同
        if(p == null && q == null){
            return true;
        }
        //两棵树一颗为空一颗不为空——不相同
        if((p == null)&&(q != null) || (p != null) && (q == null)){
            return false;
        }
        //两个都不是空——不一定，所以我们要对其节点值进行判断
        if(p.val != q.val){
            return false;
        }
        //如果这两个根节点相同的话，然后去检查其左子树和右子树是否分别相等
        return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
    }
}
